<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib.override">

  <require>org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib</require>

  <extension target="service:org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService" point="org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService--filterConfig">
    <filterConfig cacheTime="31536000" cached="true" name="cachednxfile" private="true" synchonize="false" transactional="false">
      <!-- if url contains doc changeToken: approximately one year -->
      <!-- transaction is manually handled in DownloadServlet -->
      <pattern>/nuxeo/nxfile/.*\\?.*changeToken=.+</pattern>
    </filterConfig>
    <filterConfig cacheTime="0" cached="true" name="nxfile" private="true" synchonize="false" transactional="false">
      <!-- transaction is manually handled in DownloadServlet -->
      <pattern>/nuxeo/nxfile/.*</pattern>
    </filterConfig>
    <filterConfig cached="true" name="BigFileDownloaderRequest" private="true" synchonize="false" transactional="false">
      <!-- transaction is manually handled in DownloadServlet -->
      <pattern>/nuxeo/nxbigfile/.*</pattern>
    </filterConfig>
    <filterConfig cached="true" name="BigZipFileDownloaderRequest" private="true" synchonize="true" transactional="true">
      <pattern>/nuxeo/nxbigzipfile/.*</pattern>
    </filterConfig>
    <filterConfig cacheTime="3600" cached="true" name="img">
      <pattern>/nuxeo/img.*</pattern>
    </filterConfig>
    <filterConfig cacheTime="3600" cached="true" name="icons">
      <pattern>/nuxeo/icons.*</pattern>
    </filterConfig>
    <filterConfig cacheTime="3600" cached="true" name="js">
      <pattern>/nuxeo/js.*</pattern>
    </filterConfig>
    <filterConfig cacheTime="3600" cached="true" name="scripts">
      <pattern>/nuxeo/scripts.*</pattern>
    </filterConfig>
    <filterConfig cacheTime="3600" cached="true" name="waitdialog">
      <pattern>/nuxeo/waitdialog.*</pattern>
    </filterConfig>
    <filterConfig cacheTime="31536000" cached="true" name="cachedBPR" private="true" transactional="true">
      <!-- if url contains doc changeToken: approximately one year -->
      <pattern>/nuxeo/.*/@(blob|preview|rendition).*\\?.*changeToken=.+</pattern>
    </filterConfig>
    <filterConfig cacheTime="0" cached="true" name="BPR" private="true" transactional="true">
      <pattern>/nuxeo/.*/@(blob|preview|rendition).*</pattern>
    </filterConfig>
    <filterConfig cached="false" name="nxadmin" private="true">
      <pattern>/nuxeo/nxadmin/.*</pattern>
    </filterConfig>
  </extension>
  <extension target="service:org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService" point="org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService--responseHeaders">
    <header name="X-UA-Compatible">IE=10; IE=11</header>
    <header name="Cache-Control">no-cache</header>
    <header name="X-Content-Type-Options">nosniff</header>
    <header name="X-XSS-Protection">1; mode=block</header>
    <header name="X-Frame-Options">SAMEORIGIN</header>
    <header name="Referrer-Policy">strict-origin-when-cross-origin</header>
    <header name="Content-Security-Policy">img-src data: blob: *; default-src blob: *; script-src 'unsafe-inline' 'unsafe-eval' data: *; style-src 'unsafe-inline' *; font-src data: *</header>
  </extension>

</component>
